<?php
namespace app\comm\behavior;

use app\comm\lib\ApiToken;
use think\facade\Request;

/**
 * 登陆记录token
 * Class AuthBehavior
 * @package app\extra\behavior
 */
class AuthBehavior
{
    // http header authorization
    public static $authKey = 'authorization';

    /**
     * 获取token
     * @param $params
     */
    public function handle($params){
        $info = Request::header();
        if (array_key_exists(self::$authKey, $info) && !empty($info[self::$authKey])){
            /*
             * 获取头部的  authorization
             */
            $auth_id = $info[self::$authKey];
        } else {
            if(array_key_exists(self::$authKey, $_COOKIE) && !empty($_COOKIE[self::$authKey])){
                /*
                 * 获取cookie中的authorization
                 */
                $auth_id = $_COOKIE[self::$authKey];
            }
        }
        if (!empty($auth_id) && (strtolower($auth_id) == 'undefined' || strtolower($auth_id) == 'null')){
            $auth_id = null;
        }
        if (!empty($auth_id)){
            // 设置authorization的值
            ApiToken::setId($auth_id);
        } else {
            /*
             * authorization的值不存在则创建一个
             */
            ApiToken::setId();
        }
    }
}
